cmake_minimum_required(VERSION 3.10)
project(test_feature)

add_executable(
        test_feature
        ../../source/bstr.cpp
        ../../source/main.cpp
        ../../source/scriptmath3d.cpp
        ../../source/scriptstring.cpp
        ../../source/scriptstring_utils.cpp
        ../../source/test2modules.cpp
        ../../source/test_2func.cpp
        ../../source/test_addon_contextmgr.cpp
        ../../source/test_addon_datetime.cpp
        ../../source/test_addon_debugger.cpp
        ../../source/test_addon_dictionary.cpp
        ../../source/test_addon_scriptarray.cpp
        ../../source/test_addon_scriptbuilder.cpp
        ../../source/test_addon_scriptfile.cpp
        ../../source/test_addon_scriptgrid.cpp
        ../../source/test_addon_scripthandle.cpp
        ../../source/test_addon_scriptmath.cpp
        ../../source/test_addon_scriptsocket.cpp
        ../../source/test_addon_serializer.cpp
        ../../source/test_addon_stdstring.cpp
        ../../source/test_addon_weakref.cpp
        ../../source/test_any.cpp
        ../../source/test_argref.cpp
        ../../source/test_array.cpp
        ../../source/test_arrayhandle.cpp
        ../../source/test_arrayintf.cpp
        ../../source/test_arrayobject.cpp
        ../../source/test_assign.cpp
        ../../source/test_auto.cpp
        ../../source/test_autohandle.cpp
        ../../source/test_bits.cpp
        ../../source/test_bool.cpp
        ../../source/test_castop.cpp
        ../../source/test_cdecl_objlast.cpp
        ../../source/test_cdecl_return.cpp
        ../../source/test_circularimport.cpp
        ../../source/test_compiler.cpp
        ../../source/test_composition.cpp
        ../../source/test_condition.cpp
        ../../source/test_config.cpp
        ../../source/test_configaccess.cpp
        ../../source/test_constobject.cpp
        ../../source/test_constproperty.cpp
        ../../source/test_constructor.cpp
        ../../source/test_constructor2.cpp
        ../../source/test_context.cpp
        ../../source/test_conversion.cpp
        ../../source/test_cstring.cpp
        ../../source/test_custommem.cpp
        ../../source/test_debug.cpp
        ../../source/test_defaultarg.cpp
        ../../source/test_destructor.cpp
        ../../source/test_dict.cpp
        ../../source/test_discard.cpp
        ../../source/test_dump.cpp
        ../../source/test_dynamicconfig.cpp
        ../../source/test_enum.cpp
        ../../source/test_exception.cpp
        ../../source/test_exceptionmemory.cpp
        ../../source/test_factory.cpp
        ../../source/test_float.cpp
        ../../source/test_for.cpp
        ../../source/test_foreach.cpp
        ../../source/test_funcoverload.cpp
        ../../source/test_functionptr.cpp
        ../../source/test_garbagecollect.cpp
        ../../source/test_generic.cpp
        ../../source/test_getargptr.cpp
        ../../source/test_getset.cpp
        ../../source/test_implicitcast.cpp
        ../../source/test_implicithandle.cpp
        ../../source/test_import.cpp
        ../../source/test_import2.cpp
        ../../source/test_inheritance.cpp
        ../../source/test_int8.cpp
        ../../source/test_interface.cpp
        ../../source/test_mixin.cpp
        ../../source/test_module.cpp
        ../../source/test_multiassign.cpp
        ../../source/test_namedargs.cpp
        ../../source/test_namespace.cpp
        ../../source/test_native_defaultfunc.cpp
        ../../source/test_nested.cpp
        ../../source/test_nevervisited.cpp
        ../../source/test_notinitialized.cpp
        ../../source/test_object.cpp
        ../../source/test_object2.cpp
        ../../source/test_object3.cpp
        ../../source/test_objhandle.cpp
        ../../source/test_objhandle2.cpp
        ../../source/test_objzerosize.cpp
        ../../source/test_operator.cpp
        ../../source/test_optimize.cpp
        ../../source/test_parser.cpp
        ../../source/test_pointer.cpp
        ../../source/test_postprocess.cpp
        ../../source/test_pow.cpp
        ../../source/test_propintegerdivision.cpp
        ../../source/test_refargument.cpp
        ../../source/test_refcast.cpp
        ../../source/test_registertype.cpp
        ../../source/test_return_with_cdecl_objfirst.cpp
        ../../source/test_returnstring.cpp
        ../../source/test_rz.cpp
        ../../source/test_saveload.cpp
        ../../source/test_scriptclassmethod.cpp
        ../../source/test_scriptmath.cpp
        ../../source/test_scriptretref.cpp
        ../../source/test_scriptstring.cpp
        ../../source/test_scriptstruct.cpp
        ../../source/test_shared.cpp
        ../../source/test_shark.cpp
        ../../source/test_singleton.cpp
        ../../source/test_stack2.cpp
        ../../source/test_stdvector.cpp
        ../../source/test_stream.cpp
        ../../source/test_structintf.cpp
        ../../source/test_suspend.cpp
        ../../source/test_template.cpp
        ../../source/test_thiscall_as_method.cpp
        ../../source/test_thiscall_as_method_config.cpp
        ../../source/test_thiscall_class.cpp
        ../../source/test_thiscall_asglobal.cpp
        ../../source/test_typedef.cpp
        ../../source/test_unsaferef.cpp
        ../../source/test_vartype.cpp
        ../../source/test_vector3.cpp
        ../../source/test_vector3_2.cpp
        ../../source/testbstr.cpp
        ../../source/testcdecl_class.cpp
        ../../source/testcdecl_class_a.cpp
        ../../source/testcdecl_class_c.cpp
        ../../source/testcdecl_class_d.cpp
        ../../source/testcdecl_class_k.cpp
        ../../source/testcreateengine.cpp
        ../../source/testenumglobvar.cpp
        ../../source/testexecute.cpp
        ../../source/testexecute1arg.cpp
        ../../source/testexecute2args.cpp
        ../../source/testexecute32args.cpp
        ../../source/testexecute32mixedargs.cpp
        ../../source/testexecute4args.cpp
        ../../source/testexecute4argsf.cpp
        ../../source/testexecutemixedargs.cpp
        ../../source/testexecutescript.cpp
        ../../source/testexecutestring.cpp
        ../../source/testexecutethis32mixedargs.cpp
        ../../source/testglobalvar.cpp
        ../../source/testint64.cpp
        ../../source/testlongtoken.cpp
        ../../source/testmoduleref.cpp
        ../../source/testmultipleinheritance.cpp
        ../../source/testnegateoperator.cpp
        ../../source/testnotcomplexstdcall.cpp
        ../../source/testnotcomplexthiscall.cpp
        ../../source/testoutput.cpp
        ../../source/teststack.cpp
        ../../source/teststdcall4args.cpp
        ../../source/teststdstring.cpp
        ../../source/testswitch.cpp
        ../../source/testtempvar.cpp
        ../../source/testvirtualinheritance.cpp
        ../../source/testvirtualmethod.cpp
        ../../source/utils.cpp
        ../../../../add_on/contextmgr/contextmgr.cpp
        ../../../../add_on/datetime/datetime.cpp
        ../../../../add_on/debugger/debugger.cpp
        ../../../../add_on/scriptany/scriptany.cpp
        ../../../../add_on/scriptarray/scriptarray.cpp
        ../../../../add_on/scriptbuilder/scriptbuilder.cpp
        ../../../../add_on/scriptdictionary/scriptdictionary.cpp
        ../../../../add_on/scriptfile/scriptfile.cpp
        ../../../../add_on/scriptfile/scriptfilesystem.cpp
        ../../../../add_on/scriptgrid/scriptgrid.cpp
        ../../../../add_on/scripthandle/scripthandle.cpp
        ../../../../add_on/scripthelper/scripthelper.cpp
        ../../../../add_on/scriptmath/scriptmath.cpp
        ../../../../add_on/scriptmath/scriptmathcomplex.cpp
        ../../../../add_on/scriptsocket/scriptsocket.cpp
        ../../../../add_on/scriptstdstring/scriptstdstring.cpp
        ../../../../add_on/scriptstdstring/scriptstdstring_utils.cpp
        ../../../../add_on/serializer/serializer.cpp
        ../../../../add_on/weakref/weakref.cpp
        )
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../../angelscript/projects/cmake angelscript)
target_link_libraries(test_feature ${ANGELSCRIPT_LIBRARY_NAME})
target_include_directories(test_feature PRIVATE ../../../../angelscript/include)
set_target_properties(test_feature PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../../bin)
set_target_properties(test_feature PROPERTIES CXX_STANDARD 11)
